package com.iot.ammeter.mapper.web.campus;

import com.baomidou.mybatisplus.core.metadata.IPage;
import com.baomidou.mybatisplus.extension.plugins.pagination.Page;
import com.iot.ammeter.dto.web.campus.CampusDTO;
import com.iot.ammeter.dto.web.campus.CampusInfoDTO;
import com.iot.ammeter.dto.web.campus.SchoolNameAndCampusNameDTO;
import com.iot.ammeter.entity.web.campus.Campus;
import com.baomidou.mybatisplus.core.mapper.BaseMapper;
import com.iot.ammeter.query.web.campus.CampusQuery;
import org.apache.ibatis.annotations.Mapper;
import org.apache.ibatis.annotations.Param;

import java.util.List;

/**
 * <p>
 * 校区 Mapper 接口
 * </p>
 *
 * @author basil
 * @since 2021-09-25
 */
@Mapper
public interface CampusMapper extends BaseMapper<Campus> {

    /**
     * 获取校区及校区名
     *
     * @return List
     */
    List<SchoolNameAndCampusNameDTO> selectSchoolNameAndCampusName();

    /**
     * 学校校区信息列表
     *
     * @param pages       页码
     * @param campusQuery 查询条件
     * @return IPage
     */
    IPage<Campus> listCampus(@Param("page") Page<Campus> pages, @Param("campusQuery") CampusQuery campusQuery);

    /**
     * 判断校区是否存在
     *
     * @param schoolName 学校名称
     * @param campusName 校区名称
     * @return Campus
     */
    Campus campusExists(@Param("schoolName") String schoolName, @Param("campusName") String campusName);

    /**
     * 通过校区id获取校区详细信息
     *
     * @param campusId 校区id
     * @return ResponseResult
     */
    CampusInfoDTO getCampusDetailsById(@Param("campusId")String campusId);
}
